home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 34.zip / BS1 part 34 / source code vol 1.adf / OTHERROUTS / SCROLL.S
Text File  |  1999-09-26  |  3KB  |  141 lines

  1. SCROLL10:    SUBQ.W    #4,COUNT2
  2.         BPL.L    HITON
  3.         BSR    PRINT10
  4.         MOVE.W  #12,COUNT2
  5. HITON:        JSR    WAIT
  6.         MOVE.L    #$FFFFFFFF,$DFF044
  7.         MOVE.L    #$7A140+520,$DFF050
  8.         MOVE.L     #$7A140+520,$DFF054
  9.         MOVE.L    #0,$DFF064
  10.         MOVE.W    #2,$DFF042
  11.         MOVE.W    #$49F0,$DFF040
  12.         MOVE.W    #%0000101000011010,$DFF058
  13.         JSR    WAIT
  14.         MOVE.L    #$FFFFFFFF,$DFF044
  15.         MOVE.L    #$7AB40+520,$DFF050
  16.         MOVE.L     #$7AB40+520,$DFF054
  17.         MOVE.L    #0,$DFF064
  18.         MOVE.W    #2,$DFF042
  19.         MOVE.W    #$49F0,$DFF040
  20.         MOVE.W    #%0000101000011010,$DFF058
  21.         RTS
  22. PRINT10:    BSR   GET_CHAR
  23.         RTS
  24. WAIT:        BTST     #14,$DFF002
  25.         BNE     WAIT
  26.         RTS
  27. VHPOSR                = $DFF006
  28. DMACON                = $DFF096
  29. BLTCON0               = $DFF040
  30. BLTCON1               = $DFF042
  31. BLTAFWM               = $DFF044
  32. BLTALWM               = $DFF046
  33. BLTCPT                = $DFF048
  34. BLTBPT                = $DFF04C
  35. BLTAPT                = $DFF050
  36. BLTDPT                = $DFF054
  37. BLTSIZE               = $DFF058
  38. BLTCMOD               = $DFF060
  39. BLTBMOD               = $DFF062
  40. BLTAMOD               = $DFF064
  41. BLTDMOD               = $DFF066
  42.  
  43.  
  44. GET_CHAR:
  45. SCR2CHR:LEA    $79FFA,A2
  46.     MOVE.L    A2,A1
  47. SCR2C2:    MOVE.L    TEXTC2,A3
  48. SCR2C1:    MOVE.B    (A3)+,D0
  49.     CMP.B    #0,D0
  50.     BEQ.S    SCR2RES
  51.     CMP.B    #$0A,D0
  52.     BEQ.S    SCR2BRK
  53. GOONMAN:
  54.     BSR.S    SCR2NO
  55.     ADD.L    #2,A2
  56.     MOVE.L    A2,A1
  57. SCR2C3:    MOVE.L    A3,TEXTC2
  58.     RTS
  59.  
  60. SCR2RES:MOVE.L    #TEXT4,TEXTC2
  61.     BRA.S    SCR2C2
  62. SCR2BRK:MOVE.B  #$20,D0
  63.     BRA.S    GOONMAN
  64.  
  65. SCR2NO:    CMP.B    #32,D0
  66.     BNE.S    SCR2N0
  67.     MOVE.B    #0,D0
  68.     BRA.S    SCR2PUT
  69. SCR2N0:    CMP.B    #47,D0
  70.     BCC.S    SCR2N1
  71.     SUB.B    #44,D0
  72.     BRA.S    SCR2PUT
  73. SCR2N1:    CMP.B    #59,D0
  74.     BCC.S    SCR2N2
  75.     SUB.B    #45,D0
  76.     BRA.S    SCR2PUT
  77. SCR2N2:    CMP.B    #91,D0
  78.     BCC.S    SCR2N3
  79.     SUB.B    #51,D0
  80. SCR2PUT:BSR.S    GETC4
  81. SCR2N3:    RTS    
  82.  
  83. GETC4:    MOVE.L    #0,A0            ;CLEAR A0
  84.     CLR.L    D1            ;AND D1
  85.     MOVE.B    #20,D2            ;SET CMP START TO 10
  86.     MOVE.B    D0,D1            ;GET D0 TO D1 (D0=CHAR)
  87.     MOVE.B    #2,D3            ;NUMBER TO ADD.
  88. GETC5:    CMP.B    D2,D0            ;CMP CHARS
  89.     BCS.S    GETC6            ;RIGHT CHAR ????
  90.     SUB.B    #20,D1            ;SUB TO GET <10 IN CHAR
  91.     ADD.L    #640,A0            ;ADD. IN PLANE
  92.     ADD.B    #20,D2            ;ADD. IN CMP
  93.     SUB.B    #1,D3            ;SUB TIMES
  94.     BNE.S    GETC5            ;END ???
  95.     RTS
  96.  
  97. GETC6:    MULU    #2,D1            ;MULTIP. 2*D1 TO D1
  98.     ADD.W    D1,A0            ;ADD D1 AND A0 TO A0
  99.     ADD.L    #CHAR2,A0        ;ADD CHAR ADR. AND A0 TO A0
  100.     MOVE.B    #2,D3            ;NUMBER OF PLANES
  101. GETC7:    MOVE.W    #38,D0            ;MODULO A
  102.     MOVE.W    #50,D1            ;MODULO D
  103.     MOVE.W    #%0000010000000001,D2    ;SET SIZE
  104.     BSR    BLIT            ;START BLITTER
  105.     ADD.L    #1280,A0        ;ADD. SOURCE
  106.     ADD.L    #2560,A1        ;ADD. DESTINATION
  107.     SUB.B    #1,D3            ;SUB PLANES
  108.     BNE.S    GETC7            ;NO MORE TIMES
  109.     RTS
  110.  
  111. ****** BLITTER RUTINE ******
  112. BLIT:    BSR.S    WFBL            ;WAIT FOR BLITTER
  113.     MOVE.L    A0,BLTAPT        ;MOVE A0 TO SOURCE A
  114.     MOVE.W    #$FFFF,BLTAFWM        ;SET FIRST-WORD MASK.
  115.     MOVE.W    #$FFFF,BLTALWM        ;SET LAST-WORD MASK.
  116.     MOVE.W    D0,BLTAMOD        ;SET A MODULO
  117.     MOVE.L    A1,BLTDPT        ;MOVE A1 TO DESTINATION
  118.     MOVE.W    D1,BLTDMOD        ;SET D MODULO
  119.     MOVE.W    #$09F0,BLTCON0        ;A-D ON. D=A
  120.     MOVE.W    #$0000,BLTCON1        ;SET BLTCON1
  121.     MOVE.W    D2,BLTSIZE        ;SET SIZE AND START BLITTER
  122.     RTS
  123.  
  124. ****** WAIT FOR BLITTER ******
  125. WFBL:    BTST    #14,$DFF002        ;TEST BIT 14
  126.     BNE.S    WFBL            ;FINISHED! - RETURN
  127.     RTS
  128.  
  129. BREAK2:    DC.B    0
  130.     EVEN
  131. COUNT2:    DC.W    0
  132. TEXTC2:    DC.L    TEXT4
  133.  
  134. CHAR2:    BLK.B    2560,0
  135.  
  136. TEXT4:     
  137. DC.B 'DETTE ER EN DEMO TIL EN SCROLL     '
  138. DC.B 0
  139. EVEN
  140. COUNT3:     DC.W 0
  141.